/*******************************************************************************
 * Project Key : CPPII
 * Create on 2013-11-5 下午3:08:35
 * Copyright (c) 2009 - 2018.银盛支付服务股份有限公司版权所有 粤ICP备14098269号
 * 注意：本内容仅限于银盛支付服务股份有限公司内部传阅，禁止外泄以及用于其他的商业目的
 ******************************************************************************/
package org.jeecg.modules.yinsheng.command.merchant;

import org.jeecg.modules.yinsheng.annotation.Length;
import org.jeecg.modules.yinsheng.annotation.NotBlank;
import org.jeecg.modules.yinsheng.annotation.Pattern;
import org.jeecg.modules.yinsheng.command.base.BaseBizReqCommand;
import org.jeecg.modules.yinsheng.common.YsPayConstant;

/**
 * 
 * <P>商户新增请求</P>
 * 
 * @version $Id$
 * @user zcw 2021年4月1日 下午5:05:08
 */
public class MerchantAddRequestCommand extends BaseBizReqCommand {

	/**
	 * TODO
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 商户名称
	 */
	@NotBlank(message = "商户名称不能为空")
	@Length(max = 20, message = "商户名称最大长度不能超过20个字符")
	private String merchantName;

	/**
	 * 商户简称
	 */
	@NotBlank(message = "商户简称不能为空")
	@Length(max = 20, message = "商户简称最大长度不能超过20个字符")
	private String merchantShortName;

	/**
	 * 外部商户号
	 */
	@NotBlank(message = "外部商户号不能为空")
	@Length(max = 32, message = "外部商户号最大长度不能超过32个字符")
	private String outMerchantNo;

	/**
	 * 商户类型：类型不同，需上传的图片不同 01-个体商户，按营业执照上类型选择 02-企业商户，按营业执照上类型选择 03-小微商户，无营业执照；
	 */
	@NotBlank(message = "商户类型不能为空")
	private String merchantType;

	/**
	 * 营业执照号
	 */
	@Length(max = 50, message = "营业执照号最大长度不能超过50个字符")
	private String businessCode;

	/**
	 * 营业执照全称
	 */
	@Length(max = 50, message = "营业执照全称最大长度不能超过50个字符")
	private String businessName;

	/**
	 * 营业执照有效期
	 */
	@Length(max = 8, message = "营业执照有效期最大长度不能超过8个字符")
	private String businessExpire;

	/**
	 * 营业执照失效期
	 */
	@Length(max = 8, message = "营业执照失效期最大长度不能超过8个字符")
	private String businessFailure;

	/**
	 * 营业执照地址
	 */
	@Length(max = 200, message = "营业执照地址最大长度不能超过200个字符")
	private String businessAddress;

	/**
	 * 营业执照图片
	 */
	private String businessPic;

	/**
	 * 经营地址
	 */
	@NotBlank(message = "经营地址不能为空")
	@Length(max = 200, message = "经营地址最大长度不能超过200个字符")
	private String bizAddress;

	/**
	 * 法人姓名
	 */
	@NotBlank(message = "法人姓名不能为空")
	@Length(max = 50, message = "法人姓名最大长度不能超过50个字符")
	private String lawyerName;

	/**
	 * 法人手机号
	 */
	@NotBlank(message = "法人手机号不能为空")
	@Length(max = 11, message = "法人手机号最大长度不能超过11个字符")
	private String lawyerPhone;

	/**
	 * 法人证件号
	 */
	@NotBlank(message = "法人证件号不能为空")
	@Length(max = 50, message = "法人证件号最大长度不能超过50个字符")
	private String lawyerId;

	@NotBlank(message = "法人证件开始有效期不能为空")
	@Length(max = 8, message = "法人证件开始有效期最大长度不能超过8个字符")
	private String lawyerIdExpired;

	/**
	 * 法人证件失效期 格式yyyymmdd 长期填29991231
	 */
	@NotBlank(message = "法人证件失效期不能为空")
	@Length(max = 8, message = "法人证件失效期最大长度不能超过8个字符")
	private String lawyerIdFailure;

	/**
	 * 法人国籍
	 */
	@Length(max = 50, message = "法人国籍最大长度不能超过50个字符")
	private String lawyerCountry;

	/**
	 * 法人职业
	 */
	@Length(max = 50, message = "法人职业最大长度不能超过50个字符")
	private String lawyerWork;

	/**
	 * 法人性别
	 */
	@Length(max = 50, message = "法人性别最大长度不能超过50个字符")
	private String lawyerSex;

	/**
	 * 法人地址
	 */
	@Length(max = 200, message = "法人地址最大长度不能超过200个字符")
	private String lawyerAddress;

	/**
	 * 法人证件类型 00-身份证 01-中国护照 02-军人身份证 03-警官证 04-户口簿 05-临时身份证 06-外国护照 07-港澳通行证 08-台胞通行证 09-离休干部荣誉证
	 * 10-军官退休证 11-文职干部退休证 12-军事院校学员证 13-武装警察身份证 14-军官证 15-文职干部证 16-军人士兵证 17-武警士兵证 18-其他证件 19-营业执照
	 */
	@NotBlank(message = "法人证件类型不能为空")
	private String lawyerIdType;

	/**
	 * 结算账户卡类型
	 */
	@NotBlank(message = "结算账户卡类型不能为空")
	private String accountCardType;

	/**
	 * 结算账户卡号
	 */
	@NotBlank(message = "结算账户卡号不能为空")
	@Length(max = 20, message = "结算账户卡号最大长度不能超过20个字符")
	private String accountCardno;

	/**
	 * 结算账户户名
	 */
	@NotBlank(message = "结算账户户名不能为空")
	@Length(max = 100, message = "结算账户户名最大长度不能超过100个字符")
	private String accountCardnoName;

	/**
	 * 开户行省（如湖北省）
	 */
	@NotBlank(message = "开户行省不能为空")
	@Length(max = 32, message = "开户行省最大长度不能超过32个字符")
	private String openAccProvince;

	/**
	 * 开户行市（如武汉市）
	 */
	@NotBlank(message = "开户行市不能为空")
	@Length(max = 32, message = "开户行市最大长度不能超过32个字符")
	private String openAccCity;

	/**
	 * 开户行区
	 */
	@Length(max = 32, message = "开户行区最大长度不能超过32个字符")
	private String openAccArea;

	/**
	 * 开户行编号（支行）
	 */
	@Length(max = 50, message = "开户行编号（支行）最大长度不能超过50个字符")
	private String openAccBanktype;

	/**
	 * 联系人手机号
	 */
	@NotBlank(message = "联系人手机号不能为空")
	@Length(max = 11, message = "联系人手机号最大长度不能超过11个字符")
	private String personPhone;

	/**
	 * 联系人姓名
	 */
	@NotBlank(message = "联系人姓名不能为空")
	@Length(max = 50, message = "联系人姓名最大长度不能超过50个字符")
	private String personName;
	/**
	 * 联系人证件号
	 */
	@NotBlank(message = "联系人证件号不能为空")
	@Length(max = 50, message = "联系人证件号最大长度不能超过50个字符")
	private String personId;

	/**
	 * 联系人邮箱
	 */
	@NotBlank(message = "联系人邮箱不能为空")
	@Pattern(regexp = YsPayConstant.EMAIL_REGEX, message = "邮箱格式不正确")
	@Length(max = 50, message = "联系人邮箱最大长度不能超过50个字符")
	private String personEmail;

	/**
	 * 联系人地址
	 */
	@NotBlank(message = "联系人地址不能为空")
	@Length(max = 200, message = "联系人地址最大长度不能超过200个字符")
	private String personAddress;

	/**
	 * 所在省
	 */
	@NotBlank(message = "所在省不能为空")
	@Length(max = 32, message = "所在省最大长度不能超过32个字符")
	private String province;

	/**
	 * 所在市
	 */
	@NotBlank(message = "所在市不能为空")
	@Length(max = 32, message = "所在市最大长度不能超过32个字符")
	private String city;

	/**
	 * 所在区
	 */
	@Length(max = 32, message = "所在区最大长度不能超过32个字符")
	private String region;

	/**
	 * mcc码
	 */
	@NotBlank(message = "mcc码不能为空")
	@Length(max = 50, message = "mcc码最大长度不能超过50个字符")
	private String mccCode;

	/**
	 * 结算账户卡正面图片
	 */
	@NotBlank(message = "结算账户卡正面图片不能为空")
	private String accountCardPicFront;

	/**
	 * 法人证件正面图
	 */
	@NotBlank(message = "法人证件正面图不能为空")
	private String lawyerIdPicFront;

	/**
	 * 法人证件反面图
	 */
	@NotBlank(message = "法人证件反面图不能为空")
	private String lawyerIdPicBack;

	/**
	 * 法人手持证件正面图片
	 */
	@NotBlank(message = "法人手持证件正面图片不能为空")
	private String lawyerIdHandFront;

	// 门头照图，商户图片进件接口的编号
	// @NotBlank(message = "门头照图不能为空")
	private String doorFrontPic;
	// 收银台照图，商户图片进件接口的编号
	// @NotBlank(message = "收银台照图不能为空")
	private String cashierPic;
	// 场景照图，商户图片进件接口的编号
	// @NotBlank(message = "场景照图不能为空")
	private String scenePic;

	/**
	 * 进件结果通知 01-不通知(默认值) 02-联系人邮件通知 03-联系人短信通知 04邮箱短信通知
	 */
	private String notifyType;
	/**
	 * 报备类型： 01-自动报备(默认值，接口自动提交报备) 02-手动报备(需单独调用报备接口)
	 */
	private String reportType;
	/**
	 * 结算方式： 01-银行账户(默认值) 02-平台内账户
	 */
	private String settleType;
	/**
	 * 商户通知地址 进件结果异步回调URL，为空则不发送
	 */
	private String notifyAddress;

	public String getMerchantName() {
		return merchantName;
	}

	public void setMerchantName(String merchantName) {
		this.merchantName = merchantName;
	}

	public String getMerchantShortName() {
		return merchantShortName;
	}

	public void setMerchantShortName(String merchantShortName) {
		this.merchantShortName = merchantShortName;
	}

	public String getOutMerchantNo() {
		return outMerchantNo;
	}

	public void setOutMerchantNo(String outMerchantNo) {
		this.outMerchantNo = outMerchantNo;
	}

	public String getMerchantType() {
		return merchantType;
	}

	public void setMerchantType(String merchantType) {
		this.merchantType = merchantType;
	}

	public String getBusinessCode() {
		return businessCode;
	}

	public void setBusinessCode(String businessCode) {
		this.businessCode = businessCode;
	}

	public String getBusinessName() {
		return businessName;
	}

	public void setBusinessName(String businessName) {
		this.businessName = businessName;
	}

	public String getBusinessExpire() {
		return businessExpire;
	}

	public void setBusinessExpire(String businessExpire) {
		this.businessExpire = businessExpire;
	}

	public String getBusinessFailure() {
		return businessFailure;
	}

	public void setBusinessFailure(String businessFailure) {
		this.businessFailure = businessFailure;
	}

	public String getBusinessAddress() {
		return businessAddress;
	}

	public void setBusinessAddress(String businessAddress) {
		this.businessAddress = businessAddress;
	}

	public String getBusinessPic() {
		return businessPic;
	}

	public void setBusinessPic(String businessPic) {
		this.businessPic = businessPic;
	}

	public String getBizAddress() {
		return bizAddress;
	}

	public void setBizAddress(String bizAddress) {
		this.bizAddress = bizAddress;
	}

	public String getLawyerName() {
		return lawyerName;
	}

	public void setLawyerName(String lawyerName) {
		this.lawyerName = lawyerName;
	}

	public String getLawyerPhone() {
		return lawyerPhone;
	}

	public void setLawyerPhone(String lawyerPhone) {
		this.lawyerPhone = lawyerPhone;
	}

	public String getLawyerId() {
		return lawyerId;
	}

	public void setLawyerId(String lawyerId) {
		this.lawyerId = lawyerId;
	}

	public String getLawyerIdExpired() {
		return lawyerIdExpired;
	}

	public void setLawyerIdExpired(String lawyerIdExpired) {
		this.lawyerIdExpired = lawyerIdExpired;
	}

	public String getLawyerIdFailure() {
		return lawyerIdFailure;
	}

	public void setLawyerIdFailure(String lawyerIdFailure) {
		this.lawyerIdFailure = lawyerIdFailure;
	}

	public String getLawyerCountry() {
		return lawyerCountry;
	}

	public void setLawyerCountry(String lawyerCountry) {
		this.lawyerCountry = lawyerCountry;
	}

	public String getLawyerWork() {
		return lawyerWork;
	}

	public void setLawyerWork(String lawyerWork) {
		this.lawyerWork = lawyerWork;
	}

	public String getLawyerSex() {
		return lawyerSex;
	}

	public void setLawyerSex(String lawyerSex) {
		this.lawyerSex = lawyerSex;
	}

	public String getLawyerAddress() {
		return lawyerAddress;
	}

	public void setLawyerAddress(String lawyerAddress) {
		this.lawyerAddress = lawyerAddress;
	}

	public String getLawyerIdType() {
		return lawyerIdType;
	}

	public void setLawyerIdType(String lawyerIdType) {
		this.lawyerIdType = lawyerIdType;
	}

	public String getAccountCardType() {
		return accountCardType;
	}

	public void setAccountCardType(String accountCardType) {
		this.accountCardType = accountCardType;
	}

	public String getAccountCardno() {
		return accountCardno;
	}

	public void setAccountCardno(String accountCardno) {
		this.accountCardno = accountCardno;
	}

	public String getAccountCardnoName() {
		return accountCardnoName;
	}

	public void setAccountCardnoName(String accountCardnoName) {
		this.accountCardnoName = accountCardnoName;
	}

	public String getOpenAccProvince() {
		return openAccProvince;
	}

	public void setOpenAccProvince(String openAccProvince) {
		this.openAccProvince = openAccProvince;
	}

	public String getOpenAccCity() {
		return openAccCity;
	}

	public void setOpenAccCity(String openAccCity) {
		this.openAccCity = openAccCity;
	}

	public String getOpenAccArea() {
		return openAccArea;
	}

	public void setOpenAccArea(String openAccArea) {
		this.openAccArea = openAccArea;
	}

	public String getOpenAccBanktype() {
		return openAccBanktype;
	}

	public void setOpenAccBanktype(String openAccBanktype) {
		this.openAccBanktype = openAccBanktype;
	}

	public String getPersonPhone() {
		return personPhone;
	}

	public void setPersonPhone(String personPhone) {
		this.personPhone = personPhone;
	}

	public String getPersonName() {
		return personName;
	}

	public void setPersonName(String personName) {
		this.personName = personName;
	}

	public String getPersonId() {
		return personId;
	}

	public void setPersonId(String personId) {
		this.personId = personId;
	}

	public String getPersonEmail() {
		return personEmail;
	}

	public void setPersonEmail(String personEmail) {
		this.personEmail = personEmail;
	}

	public String getPersonAddress() {
		return personAddress;
	}

	public void setPersonAddress(String personAddress) {
		this.personAddress = personAddress;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getRegion() {
		return region;
	}

	public void setRegion(String region) {
		this.region = region;
	}

	public String getMccCode() {
		return mccCode;
	}

	public void setMccCode(String mccCode) {
		this.mccCode = mccCode;
	}

	public String getAccountCardPicFront() {
		return accountCardPicFront;
	}

	public void setAccountCardPicFront(String accountCardPicFront) {
		this.accountCardPicFront = accountCardPicFront;
	}

	public String getLawyerIdPicFront() {
		return lawyerIdPicFront;
	}

	public void setLawyerIdPicFront(String lawyerIdPicFront) {
		this.lawyerIdPicFront = lawyerIdPicFront;
	}

	public String getLawyerIdPicBack() {
		return lawyerIdPicBack;
	}

	public void setLawyerIdPicBack(String lawyerIdPicBack) {
		this.lawyerIdPicBack = lawyerIdPicBack;
	}

	public String getLawyerIdHandFront() {
		return lawyerIdHandFront;
	}

	public void setLawyerIdHandFront(String lawyerIdHandFront) {
		this.lawyerIdHandFront = lawyerIdHandFront;
	}

	public String getDoorFrontPic() {
		return doorFrontPic;
	}

	public void setDoorFrontPic(String doorFrontPic) {
		this.doorFrontPic = doorFrontPic;
	}

	public String getCashierPic() {
		return cashierPic;
	}

	public void setCashierPic(String cashierPic) {
		this.cashierPic = cashierPic;
	}

	public String getScenePic() {
		return scenePic;
	}

	public void setScenePic(String scenePic) {
		this.scenePic = scenePic;
	}

	public String getNotifyType() {
		return notifyType;
	}

	public void setNotifyType(String notifyType) {
		this.notifyType = notifyType;
	}

	public String getReportType() {
		return reportType;
	}

	public void setReportType(String reportType) {
		this.reportType = reportType;
	}

	public String getSettleType() {
		return settleType;
	}

	public void setSettleType(String settleType) {
		this.settleType = settleType;
	}

	public String getNotifyAddress() {
		return notifyAddress;
	}

	public void setNotifyAddress(String notifyAddress) {
		this.notifyAddress = notifyAddress;
	}
}
